package persistent.dao;

import java.util.List;

import model.TCloudSubject;
import model.TStudent;
import model.TTeacherInfo;
import model.VCloudSchoolRole;
import model.VCloudTeachRole;
import model.VTeacherInfo;

/**
 * 教师管理业务类接口
 * @author djf
 * @since 2018/10/6
 */
public interface TeacherInfoDAO {
	
	/**
	 * 添加一个教师
	 * @param teacher 教师对象
	 * @return 成功返回主键，失败返回0
	 */ 
	public int addTecher(TTeacherInfo teacher);
	
	/**
	 * 修改教师信息
	 * @param teacher
	 * @return 修改成功返回true，失败返回false
	 */
	public boolean updateTeacher(TTeacherInfo teacher);
	
	/**
	 * 删除一个教师信息
	 * @param teaid 教师id
	 * @return 修改成功返回true，失败返回false
	 * @since 2018-11-24 10:16
	 */
	public boolean deleteTeacher(int teaid);
	
	/**
	 * 根据教师id得到一个教师信息
	 * @param teainfoid 教师id
	 * @return 成功返回TTeacherInfo教师对象，失败返回null
	 */
	public TTeacherInfo getTeacher(int teainfoid);
	
	/**
	 * 通过查询条件过的一个教师信息列表
	 * @param strwhere 查询条件
	 * @return 成功返回TTeacherInfo类型的列表，失败返回null
	 */
	public List<VTeacherInfo> getTeaListBywhere(String strwhere);
	
	/**
	 * 通过查询条件获得一个带分页的教师信息列表
	 * @param strwhere 查询条件
	 * @return 成功返回TTeacherInfo列表，失败返回null
	 */
	public List<VTeacherInfo> getTeaListByPage(String strwhere,int currentPage, int pageSize);
	
	/**
	 * 批量导入教师信息
	 * @param list 教师信息list
	 * @return 成功返回true，失败返回false
	 */
	public List<TTeacherInfo> batchImport(List<TTeacherInfo> list);
	
	/**
	 * 激活教师信息
	 * @param phone 手机号
	 * @param userName 用户名
	 * @param pwd 密码
	 * @return 成功返回true，失败返回false
	 */
	public boolean teaActivationaCcount(String phone, String userName, String pwd);
	
	/**
	 * 给一个教师添加班级
	 * @param roleid 教师权限id
	 * @param teaid 教师id
	 * @param subid 所带科目id
	 * @param classid 班级id
	 * @return 成功返回1,失败返回0
	 */
	public int addTeacherRole(int roleid,int teaid,int subid,String classid);

	/**
	 * 删除一个教师任课班级
	 * @param teachid 教师id
	 * @return 成功返回int,失败返回0
	 */
	public int deleteTeacherRole(int teachid);
	
	/**
	 * 获取所有的教师职务
	 * @return TCloudSubject
	 */
	public List<TCloudSubject> getAllCloudSubject();
	
	
	/**
	 * 得到一个不分页的教师任课班级列表
	 * @param strwhere 查询条件
	 * @return 成功返回VCloudTeachRole对象列表，失败返回null
	 */
	public List<VCloudTeachRole> getTeacherRole(String strwhere);
	
	/**
	 * 得到一个带分页的教师任课班级列表
	 * @param strwhere
	 * @param currentPage
	 * @param pageSize
	 * @return 成功返回VCloudTeachRole对象列表，失败返回null
	 */
	public List<VCloudTeachRole> getTeachRoleByPage(String strwhere,int currentPage, int pageSize);
	
	/**
	 * 根据查询条件查询得到教师表中的所有角色权限
	 * @param strwhere 查询条件
	 * @return 成功返回VCloudSchoolRole类型的列表，是失败返回null
	 */
	public List<VCloudSchoolRole> getSchoolRole(String strwhere);
	
}
